
class Event{
  on(evt,fn){
    if(typeof(this.#listeners[evt]) === 'undefined'){
      this.#listeners[evt] = [];
    }
    this.#listeners[evt].push(fn);
  }

  emit(evt,arg){
    if(typeof(this.#listeners[evt]) == 'undefined'){
      throw(new Error(`${evt} is not defined`));
      this.#listeners[evt].forEach((fn)=>{
        fn.call(this,arg);
      })
    }
  }

  #listeners = {};
}

module.exports = Event;
